package com.droid.persistor.facade;

import java.util.ArrayList;

import com.droid.persistor.dao.Categoria;
import com.droid.persistor.dao.Gasto;
import com.droid.persistor.dao.Objetivo;
import com.droid.persistor.dao.Recordatorio;
import com.droid.persistor.dao.Tipo_Gasto;
import com.droid.persistor.dao.Usuario;
import com.droid.persistor.mapper.CategoriaMapper;
import com.droid.persistor.mapper.GastoMapper;
import com.droid.persistor.mapper.ObjetivoMapper;
import com.droid.persistor.mapper.RecordatorioMapper;
import com.droid.persistor.mapper.Tipo_GastoMapper;
import com.droid.persistor.mapper.UsuarioMapper;

public class PersistorFacade {

	public Usuario obtenerUsuario(String email) {
		UsuarioMapper mapper = new UsuarioMapper();
		Usuario usu = mapper.getUsuario(email);

		return usu;

	}

	public String obtenerPasswordUsuario(String email) {
		UsuarioMapper mapper = new UsuarioMapper();
		String usu = mapper.getPasswordUsuario(email);

		return usu;

	}

	public String desactivarUsuario(String email) {
		UsuarioMapper mapper = new UsuarioMapper();
		Usuario usuario = mapper.getUsuario(email);
		String msgError;

		usuario.setEstado("D");

		mapper.updateUsuarioEstado(usuario);

		msgError = "Usuario desactivado correctamente";

		return msgError;

	}

	public String activarUsuario(String email) {
		UsuarioMapper mapper = new UsuarioMapper();
		Usuario usuario = mapper.getUsuario(email);
		String msgError;

		usuario.setEstado("A");

		mapper.updateUsuarioEstado(usuario);

		msgError = "Usuario activado correctamente";

		return msgError;

	}

	public Usuario altaUsuario(Usuario usu) {
		UsuarioMapper mapper = new UsuarioMapper();
		mapper.altaUsuario(usu);

		return usu;

	}

	public String actualizarUsuarioInfoApellido(Usuario usu) {
		UsuarioMapper mapper = new UsuarioMapper();
		mapper.updateUsuarioApellido(usu);
		return "ok";
	}

	public ArrayList<Gasto> obtenerUsuarioGastos(String email) {
		UsuarioMapper mapper = new UsuarioMapper();
		ArrayList<Gasto> gto = mapper.getUsuarioGastos(email);
		return gto;

	}
	
	public ArrayList<Recordatorio> getRecordatoriosUsuario(Number idUsuario) {
		RecordatorioMapper mapper = new RecordatorioMapper();
		ArrayList<Recordatorio> reco = mapper.getRecordatorioUsuario(idUsuario);
		return reco;
	}

	public ArrayList<Gasto> getUsuarioGastosVencidos(String email,String consulta) {
		UsuarioMapper mapper = new UsuarioMapper();
		ArrayList<Gasto> gto = mapper.getUsuarioGastosVencidos(email,consulta);
		return gto;

	}

	public Gasto altaGasto(Gasto gto) {
		GastoMapper mapper = new GastoMapper();
		mapper.altaGasto(gto);

		return gto;
	}

	public Recordatorio altaRecordatorio(Recordatorio reco) {
		RecordatorioMapper mapper = new RecordatorioMapper();
		mapper.altaRecordatorio(reco);

		return reco;
	}

	public Recordatorio getRecordatorioGasto(Number idGasto) {
		RecordatorioMapper mapper = new RecordatorioMapper();
		Recordatorio reco = mapper.getRecordatorioGasto(idGasto);

		return reco;
	}

	public void deleteRecordatorio(Number idRecordatorio) {
		RecordatorioMapper mapper = new RecordatorioMapper();

		mapper.deleteRecordatorio(idRecordatorio);

	}

	public Gasto getGasto(Number idGasto) {
		GastoMapper mapper = new GastoMapper();
		Gasto gto = mapper.getGasto(idGasto);

		return gto;
	}

	public void updateGasto(Gasto gto) {
		GastoMapper mapper = new GastoMapper();
		mapper.updateGasto(gto);

	}

	public void updateRecordatorio(Recordatorio reco) {
		RecordatorioMapper mapper = new RecordatorioMapper();
		mapper.updateRecordatorio(reco);

	}

	public void deleteGasto(Number idGasto) {
		GastoMapper mapper = new GastoMapper();
		mapper.deleteGasto(idGasto);

	}

	public Tipo_Gasto getTipo_Gasto(String nombre) {

		Tipo_GastoMapper mapper = new Tipo_GastoMapper();
		Tipo_Gasto tgo = mapper.getTipo_Gasto(nombre);

		return tgo;

	}

	public Tipo_Gasto getNombreCategoria(Number idcategoria) {

		Tipo_GastoMapper mapper = new Tipo_GastoMapper();
		Tipo_Gasto tgo = mapper.getNombreCategoria(idcategoria);

		return tgo;

	}
	
	public ArrayList<Tipo_Gasto> getListaTipoGasto() {
		Tipo_GastoMapper mapper = new Tipo_GastoMapper();
		ArrayList<Tipo_Gasto> tgo = mapper.getTipo_Gastos();
		return tgo;

	}

	public Categoria getCategoria(String nombre) {
		CategoriaMapper mapper = new CategoriaMapper();
		Categoria ctg = mapper.getCategoria(nombre);
		return ctg;
	}

	public ArrayList<Categoria> getListaCategorias() {

		CategoriaMapper mapper = new CategoriaMapper();
		ArrayList<Categoria> ctg = mapper.getCategorias();

		return ctg;

	}

	public ArrayList<Categoria> getListaCategoriasTipoGasto(Number idtipogasto) {

		CategoriaMapper mapper = new CategoriaMapper();
		ArrayList<Categoria> ctg = mapper.getCategoriasTipoGasto(idtipogasto);

		return ctg;

	}
	
	public Objetivo altaObjetivo(Objetivo obj) {
		ObjetivoMapper mapper = new ObjetivoMapper();
		mapper.altaObjetivo(obj);

		return obj;

	}

	public void deleteObjetivo(Objetivo obj) {
		ObjetivoMapper mapper = new ObjetivoMapper();
		mapper.deleteObjetivo(obj);
	}

	public String[] checkObjetivo(Number IdUsuario) {
		ObjetivoMapper mapper = new ObjetivoMapper();
		return mapper.check_Objetivo(IdUsuario);
	}

	public ArrayList<Objetivo> getListaObjetivosUsuario(Number IdUsuario) {
		ObjetivoMapper mapper = new ObjetivoMapper();
		ArrayList<Objetivo> obj= mapper.getOjetivosUsuario(IdUsuario);
		return obj;
	}
	
	
	public void modificarObjetivo(Objetivo obj) {
		ObjetivoMapper mapper = new ObjetivoMapper();
		mapper.modificarObjetivo(obj);
	}
}
